]> fbox.kageds.com Git - adventofcode.git/blob - 2021/Gareth solution Python/5pt2.py
day11
[adventofcode.git] / 2021 / Gareth solution Python / 5pt2.py
1 lines = []
2 while True:
3 try:
4 a, b, c, d = map(int, input().replace(",", " ").replace(" -> ", " ").split())
5 lines.append([(a, b), (c, d)])
6 except ValueError:
7 break
8 x = 0
9 for line in lines:
10 if max(line[0]) > x or max(line[1]) > x:
11 x = [max(line[0]), max(line[1])][max(line[0]) < max(line[1])]
12
13 diagram = [[0 for i in range(x + 1)] for j in range(x + 1)]
14 for line in lines:
15 if line[0][1] == line[1][1]:
16 for i in range(min(line[0][0], line[1][0]), max(line[0][0], line[1][0]) + 1):
17 diagram[line[0][1]][i] += 1
18 elif line[0][0] == line[1][0]:
19 for i in range(min(line[0][1], line[1][1]), max(line[0][1], line[1][1]) + 1):
20 diagram[i][line[0][0]] += 1
21 else:
22 print(line)
23 xs, x, ys, y = min(line[0][0], line[1][0]),\
24 max(line[0][0], line[1][0]), \
25 [line[0][1], line[1][1]][line[0][0] > line[1][0]],\
26 [line[0][1], line[1][1]][line[0][0] < line[1][0]]
27 yp = ys
28 for i in range(xs, x+1):
29 diagram[yp][i] += 1
30 yp += [-1, 1][ys < y]
31
32 count_bigger = 0
33 for line in diagram:
34 print(line)
35 for num in line:
36 count_bigger += [0, 1][num > 1]
37
38 print(count_bigger)